A graphical user interface (GUI) is a type of display format that enables a data processing system user to choose commands, start programs, and see graphical and textual information generated by applications by pointing to pictorial representations (icons) and lists of menu items on the screen. Examples of such graphical user interfaces include the graphical user interface sold under the trademark “WINDOWS” by Microsoft Corporation and the graphical user interface sold under the trademark “OS/2 Warp” by International Business Machines Corporation (IBM).
For application developers, graphical user interfaces offer a programming environment that manages the direct interaction between the computer and computer user. This permits the developer to concentrate on application programming without devoting a large percentage of effort to the details of screen display or mouse and keyboard inputs. A GUI also enables programmers to create programs that handle frequently performed tasks, such as displaying textual or graphical information in a window, in the same way because the interface provides standard controlling mechanisms such as the generation of windows and dialog boxes. Another benefit is that applications written for a graphical user interface are device-independent—as the interface changes to support new input or output devices, such as a large-screen monitor, the applications can, without modification, use such new devices.
It is well known to use “windows” in implementing a graphical user interface. A window is a portion of the screen that can contain its own document or message. Windows may be used to display various types of information and other objects, such as textual information, graphical information, and application tools such as icons, buttons, status windows, and the like. Different windows may receive output from different applications running concurrently, and a single application may generate output displayed in several windows. Each window might also contain its own menu or other controls, and the computer user might be able to enlarge and shrink individual windows at will. Typically, windows act independently, as if each window were a virtual display device.
In general, windows may be displayed as tiled, or overlapped. Tiled windows are displayed side-by-side horizontally or vertically or both, with no overlap of their displayed regions. Overlapped windows appear to be stacked one or top of another, like individual pieces of paper piled on a desktop, with the covered portions of lower windows not being displayed. This type of display is sometimes referred to as “the desktop metaphor for displays,” or “messy desk windowing.” It is currently popular in data processing systems to support such messy desk windowing.
The Internet and the World Wide Web has provided a vehicle for the explosive growth of electronic commerce. Utilizing specialized GUIs called web browsers, consumers can access the website of a retailer, browse through an electronic catalog and select items for purchase. The user will input information such as catalog numbers, sizes, color selections, etc. as well as personal information such as credit card number(s), mailing address information, billing address information and the like. Generally such information is input using one or more forms that appear as windows on the user's computer screen.
In early prior art systems, each time a user entered a website and/or ordered information or materials electronically, the user was required to manually input the information needed to complete the forms. Much of the information, e.g., the personal information regarding the purchaser, had to be reentered each time. Accordingly, “digital wallets” were developed. An example of a digital wallet is “Consumer Wallet” produced by International Business Machines Corporation. A digital wallet is an application or service that assists consumers in conducting online transactions by allowing them to store billing, shipping, and payment information; and to use this information to automatically complete a merchant's check-out page, typically by “dragging” the desired information to the appropriate location. Digital wallets have been successfully built into browsers, as helper applications to browsers, as stand-alone client applications, and as server-based applications. However, due to the lack of standards which would allow the information from the digital wallet to be automatically transferred to the appropriate fields on the check-out page, the use of digital wallets has experienced slow growth.
Recently, however, in an effort to increase the usability of digital wallets, a group of companies, including IBM, American Express, America Online, Compaq, CyberCash, Microsoft, and others have collaborated to develop a universal format for digital wallets in merchant websites. This format is called Electronic Commerce Modeling Language, or ECML.
ECML uses a set of uniform field names which assure that information contained in the digital wallet is associated with the correct field on the merchant's form. Using ECML, web sites are being developed which allow an “automatic form fill-in” feature residing in the digital wallet to allow point-and-click completion of a form window.
While this automatic form fill-in feature works well when a single window containing a form is open in the browser, it is not uncommon for multiple windows to be open simultaneously (e.g., windows displaying multiple items to be purchased, multiple order form windows from different vendors, etc.). In such situations, the automatic fill features will attempt to fill all of the windows that are open, or will only try to fill the first window it “finds,” which may not be the window desired by the user. This can cause several problems, including the incorrect entry of data into forms and the generation of numerous error codes indicating the incompatibility of the window with the information that the program is attempting to enter into the window. This is time-consuming and annoying to the user and could result in, among other things, sensitive user information (e.g. credit card numbers) being sent to the wrong site, or the user abandoning the attempted purchase, resulting in loss of a potential sale by the merchant.
Accordingly, a need exists for a technique which allows the selection of a target window from among a plurality of open windows so that the target window can be used for an application-specific function, such as for directing digital wallet information to the target window only.